package com.sap.sap_mangers.mapper;

import com.sap.sap_mangers.pojo.SapLuckyDrawTheme;
import com.sap.sap_mangers.pojo.SapLuckyDrawThemePrice;
import com.sap.sap_mangers.pojo.SapLuckyDrawUser;
import com.sap.sap_mangers.pojo.SapOtherCopywriting;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 阿东
 * @date 2022/8/30 [11:25]
 */
@Mapper
public interface OtherMapper {
    /**
     * 文案表之(朋友圈文案)
     *
     * @param context 内容
     * @param type    朋友圈类型为1
     * @param source  文案来源
     * @param english 英文内容
     */
    void addCopyWritingForQyq(@Param("context") String context, @Param("type") Integer type, @Param("source") String source, @Param("english") String english);

    /**
     * 获取朋友圈文案
     *
     * @return
     */
    List<SapOtherCopywriting> getPyqCopyWriting();

    /**
     * 获取电影台词文案
     *
     * @return
     */
    List<SapOtherCopywriting> getDytcCopyWriting();

    /**
     * 获取网易云热评文案
     *
     * @return
     */
    List<SapOtherCopywriting> getWyyCopyWriting();

    /**
     * 获取早安心语文案
     *
     * @return
     */
    List<SapOtherCopywriting> getZaxyCopyWriting();

    /**
     * 获取晚安心语文案
     *
     * @return
     */
    List<SapOtherCopywriting> getWaxyCopyWriting();

    /**
     * 获取毒鸡汤文案
     *
     * @return
     */
    List<SapOtherCopywriting> getDjtCopyWriting();

    /**
     * 创建抽奖活动
     * @param context 活动内容
     */
    void createLuckyDrawTheme(@Param("context")String context);

    /**
     * 通过id获取抽奖主题活动名称
     * @param id id
     * @return 抽奖活动主题
     */
    SapLuckyDrawTheme getLuckyDrawThemeById(@Param("id")Integer id);

    /**
     * 获取最后一次活动id
     * @return 活动id
     */
    Integer getLuckyDrawThemeLast();

    /**
     * 创建奖品
     *
     * @param id      抽奖活动主题id
     * @param price   奖品
     * @param nums    奖品的数量
     * @param image   奖品图片
     * @param priceId 用于前端渲染
     */
    void createLuckyDrawPrice(@Param("id")Integer id, @Param("price")String price, @Param("nums")Integer nums,@Param("image")String image,@Param("priceId")long priceId);

    /**
     * 获取最近一次抽奖活动的奖品及其数量
     * @param id 活动编号
     * @return
     */
    List<SapLuckyDrawThemePrice>  getLuckDrawPriceLastById(@Param("id")Integer id);

    /**
     * 通过奖品id来获取奖品及其数量
     * @param priceId 奖品id
     * @return
     */
    SapLuckyDrawThemePrice getLuckDrawPriceLastByPriceId(@Param("priceId")Long priceId);
    /**
     * 更新奖品数量
     * @param priceId 奖品Id
     * @param nums 更新后的数量
     */
    void updateLuckDrawPriceNums(@Param("priceId")Long priceId,@Param("nums")Integer nums);

    /**
     * 申请加入抽奖活动
     * @param sapLuckyDrawUser
     */
    void joinLuckyDrawByUsername(@Param("sapLuckyDrawUser") SapLuckyDrawUser sapLuckyDrawUser);

    /**
     * 通过最近一次的活动id来筛选参加活动的人
     * @param id 活动id
     * @return
     */
    List<SapLuckyDrawUser> getLuckyDrawUserById(@Param("id")Integer id);

    /**
     * 更新用户的获奖信息
     * @param sapLuckyDrawUser 用户信息
     */
    void updateLuckyDrawUserByUsername(@Param("sapLuckyDrawUser") SapLuckyDrawUser sapLuckyDrawUser);

    /**
     * 通过抽奖活动id筛选获奖的人
     * @param id 活动id
     * @return
     */
    List<SapLuckyDrawUser> getAwardInformationById(@Param("id")Integer id);

    /**
     * 判断是否加入了最新一次的抽奖活动
     * @param id 抽奖活动id
     * @param username 学号
     * @return 内容
     */
    SapLuckyDrawUser isJoinLuckyDraw(@Param("id")Integer id,@Param("username")String username);
}
